const char *s_camera = "\
class Camera																		\n\
{																					\n\
	name = null;																	\n\
																					\n\
	constructor (name, viewportX, viewportY, viewportWidth, viewportHeight)			\n\
	{																				\n\
		this.name = name;															\n\
		Camera_Create(name, viewportX, viewportY, viewportWidth, viewportHeight);	\n\
	}																				\n\
																					\n\
	function Destroy()																\n\
	{																				\n\
		Camera_Destroy(this.name);													\n\
	}																				\n\
																					\n\
	function SetOrthographicProjection(left, right, top, bottom, near, far)			\n\
	{																				\n\
		Camera_SetOrthographicProjection(this.name, left, right, top, bottom, near, far);\n\
	}																				\n\
																					\n\
	function SetPerspectiveProjection(fieldOfView, aspect, near, far)				\n\
	{																				\n\
		Camera_SetPerspectiveProjection(this.name, fieldOfView, aspect, near, far);	\n\
	}																				\n\
																					\n\
	function SetViewport(x, y, width, height)										\n\
	{																				\n\
		Camera_SetViewport(this.name, x, y, width, height);							\n\
	}																				\n\
																					\n\
	function GetViewportX()															\n\
	{																				\n\
		return Camera_GetViewportX(this.name);										\n\
	}																				\n\
																					\n\
	function GetViewportY()															\n\
	{																				\n\
		return Camera_GetViewportY(this.name);										\n\
	}																				\n\
																					\n\
	function GetViewportWidth()														\n\
	{																				\n\
		return Camera_GetViewportWidth(this.name);									\n\
	}																				\n\
																					\n\
	function GetViewportHeight()													\n\
	{																				\n\
		return Camera_GetViewportHeight(this.name);									\n\
	}																				\n\
																					\n\
	function SetPosition(x, y, z)													\n\
	{																				\n\
		Camera_SetPosition(this.name, x, y, z);										\n\
	}																				\n\
																					\n\
	function GetPositionX()															\n\
	{																				\n\
		return Camera_GetPositionX(this.name);										\n\
	}																				\n\
																					\n\
	function GetPositionY()															\n\
	{																				\n\
		return Camera_GetPositionY(this.name);										\n\
	}																				\n\
																					\n\
	function GetPositionZ()															\n\
	{																				\n\
		return Camera_GetPositionZ(this.name);										\n\
	}																				\n\
																					\n\
	function SetScale(scaleX, scaleY, scaleZ)										\n\
	{																				\n\
		Camera_SetScale(this.name, scaleX, scaleY, scaleZ);							\n\
	}																				\n\
																					\n\
	function GetScaleX()															\n\
	{																				\n\
		return Camera_GetScaleX(this.name);											\n\
	}																				\n\
																					\n\
	function GetScaleY()															\n\
	{																				\n\
		return Camera_GetScaleY(this.name);											\n\
	}																				\n\
																					\n\
	function GetScaleZ()															\n\
	{																				\n\
		return Camera_GetScaleZ(this.name);											\n\
	}																				\n\
																					\n\
	function SetPitch(rotation)														\n\
	{																				\n\
		Camera_SetPitch(this.name, rotation);										\n\
	}																				\n\
																					\n\
	function SetYaw(rotation)														\n\
	{																				\n\
		Camera_SetYaw(this.name, rotation);											\n\
	}																				\n\
																					\n\
	function SetRoll(rotation)														\n\
	{																				\n\
		Camera_SetRoll(this.name, rotation);										\n\
	}																				\n\
																					\n\
	function GetPitch()																\n\
	{																				\n\
		return Camera_GetPitch(this.name);											\n\
	}																				\n\
																					\n\
	function GetYaw()																\n\
	{																				\n\
		return Camera_GetYaw(this.name);											\n\
	}																				\n\
																					\n\
	function GetRoll()																\n\
	{																				\n\
		return Camera_GetRoll(this.name);											\n\
	}																				\n\
																					\n\
	function Translate(x, y, z)														\n\
	{																				\n\
		return Camera_Translate(this.name, x, y, z);								\n\
	}																				\n\
																					\n\
	function Move(x, y, z)															\n\
	{																				\n\
		return Camera_Move(this.name, x, y, z);										\n\
	}																				\n\
																					\n\
	function Turn(pitch, yaw, roll)													\n\
	{																				\n\
		return Camera_Turn(this.name, pitch, yaw, roll);							\n\
	}																				\n\
																					\n\
	function Scale(scaleX, scaleY, scaleZ)											\n\
	{																				\n\
		return Camera_Scale(this.name, scaleX, scaleY, scaleZ);						\n\
	}																				\n\
																					\n\
	function SetBackgroundColor(red, green, blue, alpha = 255)						\n\
	{																				\n\
		Camera_SetBackgroundColor(this.name, red, green, blue, alpha);				\n\
	}																				\n\
																					\n\
	function GetBackgroundColorRed()												\n\
	{																				\n\
		return Camera_GetBackgroundColorRed(this.name);								\n\
	}																				\n\
																					\n\
	function GetBackgroundColorGreen()												\n\
	{																				\n\
		return Camera_GetBackgroundColorGreen(this.name);							\n\
	}																				\n\
																					\n\
	function GetBackgroundColorBlue()												\n\
	{																				\n\
		return Camera_GetBackgroundColorBlue(this.name);							\n\
	}																				\n\
																					\n\
	function GetBackgroundColorAlpha()												\n\
	{																				\n\
		return Camera_GetBackgroundColorAlpha(this.name);							\n\
	}																				\n\
																					\n\
	function ProjectX()																\n\
	{																				\n\
		return Camera_ProjectX(this.name);											\n\
	}																				\n\
																					\n\
	function ProjectY()																\n\
	{																				\n\
		return Camera_ProjectY(this.name);											\n\
	}																				\n\
};";